/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Presente;

import BancoDados.BancoDados;
import Entidade.ProdutoModel;
import Pesistencia.ProdutoPersistencia;
import View.CadastrarProdutoView;
import View.MainGerenteView;
import View.MainVendedorView;
import View.ManterProdutosView;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Thalyta
 */
public class ManterProdutosPresente {
    
     private BancoDados banco = new BancoDados();
    private ProdutoPersistencia produtos = new ProdutoPersistencia(banco);
    private ManterProdutosView view = new ManterProdutosView();
    private CadastrarProdutoView cadastrarView = new CadastrarProdutoView();
    private String x;
    
    ManterProdutosPresente(ManterProdutosView vie, String a ) {
        x = a ;
        view = vie ;
        carregartabela();
        view.getBtneditar().addActionListener(new ActionListener() {

           
            @Override
            
            public void actionPerformed(ActionEvent e) {
                
            }
        });
        
       view.getBtnexcluir().addActionListener(new ActionListener() {

           
            @Override
            public void actionPerformed(ActionEvent e) {
                excluir();
            }
        });
       
       view.getBtnfechar().addActionListener(new ActionListener() {

           
            @Override
            public void actionPerformed(ActionEvent e) {
                fechar();
            }
        });
       
                    view.setLocationRelativeTo(null);

        view.setVisible(true);
        view.getBtneditar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                editar();
            }
        });
    }
   
    
 public void fechar(){

 
 view.setVisible(false);  
    
 
 }
 
 public void excluir(){
     String codigo = view.getjTable1().getValueAt(view.getjTable1().getSelectedRow(),0).toString();
     ProdutoModel produto ;
     produto = produtos.buscar(Integer.parseInt(codigo));
     produtos.excluir(produto);
     ManterProdutosView vie = new ManterProdutosView();
     ManterProdutosPresente cont = new ManterProdutosPresente(vie,"v");
     view.setVisible(false);
     
}
 
public void editar(){
    
    String codigo = view.getjTable1().getValueAt(view.getjTable1().getSelectedRow(),0).toString();
    final ProdutoModel  produto ;
    produto = produtos.buscar(Integer.parseInt(codigo));
    
  
    cadastrarView.getTxtnome().setText(produto.getNome());
    cadastrarView.getTxtdescriçao().setText(produto.getDescricao());
    cadastrarView.getTxtvalor().setText(String.valueOf(produto.getValor()));
    cadastrarView.getBtnEditar().setVisible(true);
    //carregacombox();
    cadastrarView.getBtnsalvar().setVisible(false);
    view.setVisible(false);
    cadastrarView.setLocationRelativeTo(null);
    cadastrarView.setVisible(true);
    cadastrarView.getBtnEditar().addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            editar1(produto);
            cadastrarView.setVisible(false);
            view.setVisible(true);
        
        }
        
        
    });
      
    cadastrarView.getBtncancelar().addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            cadastrarView.setVisible(false);
            view.setVisible(true);
        }
        
        
    });
      
   
   
}  

 public void editar1(ProdutoModel produto)
  {
    try{
            produto.setDescricao(cadastrarView.getTxtdescriçao().getText());
            produto.setNome(cadastrarView.getTxtnome().getText());
            produto.setValor(Double.valueOf(cadastrarView.getTxtvalor().getText()));
            produtos.editar(produto);
            /*int codigo,codigo2;
           if (produtos.buscar(produtos.recuperarUltimoCodigo() + 1) != null) 
           {
                          throw new Exception("Cliente ja cadastrado- iiiih ferrou!");
           } 
           else
           {

                     if(produtos.buscarNome(cadastrarView.getTxtnome().getText()) == null)
                     {

                          codigo = produtos.recuperarUltimoCodigo() + 1 ;
                          ProdutoModel produto2 = new ProdutoModel(codigo,cadastrarView.getTxtnome().getText(),Double.valueOf(cadastrarView.getTxtvalor().getText()),cadastrarView.getTxtdescriçao().getText());
                          cidades.cadastrar(cidadee);
                     }
                    else 
                     {
                          codigo = produtos.buscarNome1(cadastrarView.getTxtnome().getText());
                     }
                      
                      cliente.setCpf(cadastrarView.getTxtcpf().getText());
                      cliente.setNome(cadastrarView.getTxtnome().getText());
                      String d = cadastrarView.getTxtdatanascimento().getText();
                                String[] da = d.split("-");
                                int ano = Integer.parseInt(da[0]);
                                int mes =Integer.parseInt(da[1]);
                                int dia = Integer.parseInt(da[2]);
                                java.sql.Date dt =  new java.sql.Date(ano,mes,dia);
                      cliente.setDataNascimento(dt);
                      cliente.setSexo(cadastrarView.getCbmsexo().getSelectedItem().toString());  
                      clientes.editar(cliente);
                      //cidades.cadastrar(cidade);
                    //  endrecos.cadastrar(endereco);
                      view.setVisible(false);
                 }*/
           
                 carregartabela();
            } catch (Exception e) 
            {
                  JOptionPane.showMessageDialog(view, e.getMessage());
            }
  }

public final void carregartabela(){
    
    DefaultTableModel tm = new DefaultTableModel (
            
            new Object[][] {},
            new String []{" codProduto","Nome","Valor","Descrição"}){
                
                public boolean isCellEditable(int ronw, int col){
                    return false;
                }
            };
    tm.setNumRows(0);
    
    for (int i = 0; i < produtos.getListaProdutos().size(); i++) {
        ProdutoModel produto = (ProdutoModel) produtos.getListaProdutos().get(i);
        
        tm.addRow(new Object[]{produto.getCodigo(),produto.getNome(),produto.getValor(),produto.getDescricao()});
        
        
    }
     view.getjTable1().setModel(tm);
          
            
}
}
